package api

import (
	"flag"
	"log"
)

// 路径默认配置
// var FILE_STORE_PATH string = ""
var CACHE_STORE_PATH string = "/data/cache/"
var CHUNKS_STORE_PATH string = "/data/chunks/"
var LOCALIPADDR string = "localhost"
var LOCAL_ENCODE_ROUTE_TABLE_FILE string = "local-parity-chunks-routes.json"
var LOCAL_ENCODE_ROUTE_TABLE_STRING string = "[[{ \"nodeid\": \"0\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"1\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"2\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"3\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"4\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"17\", \"ipaddr\": \"\", \"geo\": \"\" }], [{ \"nodeid\": \"5\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"6\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"7\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"8\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"9\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"18\", \"ipaddr\": \"\", \"geo\": \"\" }], [{ \"nodeid\": \"10\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"11\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"19\", \"ipaddr\": \"\", \"geo\": \"\" }], [{ \"nodeid\": \"12\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"13\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"14\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"15\", \"ipaddr\": \"\", \"geo\": \"\" }, { \"nodeid\": \"16\", \"ipaddr\": \"\", \"geo\": \"\" }]]"

// 纠删码编码条带默认配置
const K int = 12
const M int = 5
const L int = 3

// 声明局部编码块路由表
var NODE_ROUTE_TABLE [][]Node
var LOCAL_CHUNK_ROUTE_TABLE [][]Route

func init() {
	// 处理命令行参数
	dbhost := flag.String("dbhost", "127.0.0.1", "Host of database")
	cachedir := flag.String("cachedir", CACHE_STORE_PATH, "Cache file path")
	chunksdir := flag.String("chunksdir", CHUNKS_STORE_PATH, "Chunks' path")
	routetable := flag.String("routetable", LOCAL_ENCODE_ROUTE_TABLE_FILE, "Routes Table' path")

	flag.Parse()
	LOCALIPADDR = *dbhost
	CACHE_STORE_PATH = *cachedir
	CHUNKS_STORE_PATH = *chunksdir
	LOCAL_ENCODE_ROUTE_TABLE_FILE = *routetable

	initRouteTable()

	log.Printf("Backend configuration ---------------------")
	log.Printf("%s\t\t: %s", "LOCALIPADDR", LOCALIPADDR)
	log.Printf("%s\t\t: %s", "CACHE_STORE_PATH", CACHE_STORE_PATH)
	log.Printf("%s\t\t: %s", "CHUNKS_STORE_PATH", CHUNKS_STORE_PATH)
	log.Printf("-------------------------------------------")
}
